## Java 데몬을 Apache Commons Daemon 프로젝트의 jsvc를 이용해서 실행시키는 예제
첨부파일 : commons-daemon-1.0.15-src.tar.gz
Daemon : CountService (1초마다 한줄씩 텍스트 파일에 현재 시간을 기록하는 Java Daemon)
설치 및 작업 디렉토리 : /var/dbdump
1. 필수 라이브러리 설치
[root@ip-172-31-4-242 unix]# yum install gcc autoconf
2. jsvc build [root@ip-172-31-4-242 ~]# tar xvfz commons-daemon-1.0.15-src.tar.gz
[root@ip-172-31-4-242 ~]# cd commons-daemon-1.0.15-src/src/native/unix
[root@ip-172-31-4-242 unix]# ./support/buildconf.sh
./support/buildconf.sh: configure script generated successfully
# 자신의 JAVA_HOME 경로지정
[root@ip-172-31-4-242 unix]# ./configure --with-java=/usr/java/default
[root@ip-172-31-4-242 unix]# make
# 작업 디렉토리로 복사
[root@ip-172-31-4-242 unix]# cp jsvc /var/dbdump/
3. jsvc start
[root@ip-172-31-4-242 dbdump]# /var/dbdump/jsvc -cp /var/dbdump/DbDump.jar com.bcg.dbdump.sample.CountService
# 데몬 확인
[root@ip-172-31-4-242 log]# ps -ef|grep jsvc
root 15777 1 0 00:42 ? 00:00:00 jsvc.exec -cp /var/dbdump/DbDump.jar com.bcg.dbdump.sample.CountService
root 15778 15777 0 00:42 ? 00:00:00 jsvc.exec -cp /var/dbdump/DbDump.jar com.bcg.dbdump.sample.CountService
4. jsvc stop
[root@ip-172-31-4-242 dbdump]# /var/dbdump/jsvc -stop -cp /var/dbdump/DbDump.jar com.bcg.dbdump.sample.CountService
5. CentOS 7 / RHEL 7.2 Systemd Service 로 등록
systemd unit file 생성 및 수정
[root@ip-172-31-4-242 ~]# touch /etc/systemd/system/CountService.service
[root@ip-172-31-4-242 ~]# chmod 664 /etc/systemd/system/CountService.service
[root@ip-172-31-4-242 ~]# vi /etc/systemd/system/CountService.service
아래 내용 추가
[Unit]
Description=Sample Winodws Service as Java Daemon
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/var/dbdump/jsvc -cp /var/dbdump/DbDump.jar com.bcg.dbdump.sample.CountService
ExecStop=/var/dbdump/jsvc -stop -cp /var/dbdump/DbDump.jar com.bcg.dbdump.sample.CountService
[Install]
WantedBy=multi-user.target
systemd 갱신 및 서비스 start
[root@ip-172-31-4-242 ~]# systemctl daemon-reload
[root@ip-172-31-4-242 ~]# systemctl start CountService
[root@ip-172-31-4-242 ~]# systemctl status CountService
[0m CountService.service - Sample Winodws Service as Java Daemon
Loaded: loaded (/etc/systemd/system/CountService.service; disabled; vendor preset: disabled)
Active: active (running) since Tue 2016-10-25 07:03:27 EDT; 9s ago
Process: 21368 ExecStart=/var/dbdump/jsvc -cp /var/dbdump/DbDump.jar com.bcg.dbdump.sample.CountService (code=exited, status=0/SUCCESS)
Main PID: 21369 (jsvc)
CGroup: /system.slice/CountService.service
쒋21369 jsvc.exec -cp /var/dbdump/DbDump.jar com.bcg.dbdump.sample.CountService
붴21370 jsvc.exec -cp /var/dbdump/DbDump.jar com.bcg.dbdump.sample.CountService
Oct 25 07:03:27 ip-172-31-4-242.ap-northeast-2.compute.internal systemd[1]: Starting Sample Winodws Service as Java Daemon...
Oct 25 07:03:27 ip-172-31-4-242.ap-northeast-2.compute.internal systemd[1]: Started Sample Winodws Service as Java Daemon.
[root@ip-172-31-4-242 ~]# systemctl stop CountService
[root@ip-172-31-4-242 log]# systemctl status CountService
CountService.service - Sample Winodws Service as Java Daemon
Loaded: loaded (/etc/systemd/system/CountService.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Oct 25 07:03:27 ip-172-31-4-242.ap-northeast-2.compute.internal systemd[1]: Starting Sample Winodws Service as Java Daemon...
Oct 25 07:03:27 ip-172-31-4-242.ap-northeast-2.compute.internal systemd[1]: Started Sample Winodws Service as Java Daemon.
Oct 25 07:05:32 ip-172-31-4-242.ap-northeast-2.compute.internal systemd[1]: Stopping Sample Winodws Service as Java Daemon...
Oct 25 07:05:33 ip-172-31-4-242.ap-northeast-2.compute.internal systemd[1]: Stopped Sample Winodws Service as Java Daemon.
# 서비스 활성화
[root@ip-172-31-4-242 ~]# systemctl enable CountServic |